perm filename APROLD.FAI[REV,MUS] blob
sn#122778 filedate 1977-05-24 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00004 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 entry APR
00003 00003 (REV) [ALP1] 1-pole allpass, accumulator loop
00004 00004 (REV) [ALP1] Setup for 1-pole allpass
00006 ENDMK
⊗;
entry APR
title APR
subttl Hand-coded 1st order all-pass reverberation routine
internal APR
comment ⊗
External procedure APR(reference real X,Y; integer N;
reference real Del; integer delay;
real gain; reference integer pos);
⊗
posloc←←-1
Gloc←←-2
delloc←←-3
dloc←←-4
Nloc←←-5
Yloc←←-6
Xloc←←-7
pd←←10
ac2←5
ac3←6
p←17
integer save17,save12,save16
; (REV) [ALP1] 1-pole allpass, accumulator loop
alp:
phase 0
t: 0
t1: 0
pos: 0
J: 0
A1loc: move t,0(pos)
X1loc: move t1,0(J)
coef1: fmpri t1,0
fsbrb t,t1 ; Output is in T for now
coef2: fmpri t1,0
X2loc: fadr t1,0(J)
A2loc: movem t1,0(pos)
Y1loc: movem t,0(J)
aojl pos,jinc
mi: movni pos,0
jinc: aojl J,A1loc
jrst xit
dephase
; (REV) [ALP1] Setup for 1-pole allpass
APR: move ac2,delloc(p)
move ac3,Dloc(p)
addi ac3,(ac2)
hrrm ac3,alp+A1loc
hrrm ac3,alp+A2loc
hrrm ac2,alp+mi
skipn ac2,@posloc(p)
movn ac2,delloc(p)
movem ac2,alp+pos
move ac2,Nloc(p)
move ac3,Xloc(p)
addi ac3,(ac2)
hrrm ac3,alp+X1loc
hrrm ac3,alp+X2loc
move ac3,Yloc(p)
addi ac3,(ac2)
hrrm ac3,alp+Y1loc
movnm ac2,alp+J
move ac2,Gloc(p)
hlrm ac2,alp+coef1
hlrm ac2,alp+coef2 ; Put in multiplier
movem 17,save17
movem 12,save12
movem 16,save16
movsi 17,alp
blt 17,17
jrst A1loc
xit: move 17,save17
move 16,save16
move 12,save12
movem pos,@posloc(p)
sub p,[xwd pd,pd]
jrst @pd(p)
end